package icasue.tools.sqlhelper.adaptor.annotation;

import icasue.tools.sqlhelper.common.Const;

import java.lang.annotation.*;

/**
 * @Author: Qiao Hang
 * @CreateDate: 2021/11/5 上午11:38
 * @UpdateDate:
 * @Description: 该注解用于描述自动生成Provider的元数据信息，定义在Mapper接口上或方法上.
 */
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface AutoProviderMetadata {
    // 映射的数据库
    String database();
    // 映射的数据库表
    String table();
    // 动态属性映射是否考虑继承关系.
    boolean recursionDiscoveryFields() default false;

    // 动态映射的Java类型.
    Class<? extends Object> javaType();
    // 动态映射的ColMark注解.
    Class<? extends Annotation> colMark() default Annotation.class;
    // 动态映射注解的方法.
    String mappingMethod() default Const.$EMPTY;
}
